home *** CD-ROM | disk | FTP | other *** search
- Unit dac;
-
- Interface
-
- Procedure TextFadeIn(Speed : Integer);
- Procedure TextFadeOut(Speed : Integer);
-
- Implementation
- Uses
- Dos, Crt;
-
- Type
- DacType = Array[1..256,1..3] of Byte;
-
- Var
- dac1,
- dac2 : DacType;
- x, y,
- i, erg,
- gesamt : Word;
-
-
- Procedure Read_DACs(Var Dac : DacType);
- Var
- r : Registers;
- begin
- r.ax := $1017;
- r.bx := 0;
- r.cx := 256;
- r.es := SEG(Dac);
- r.dx := Ofs(Dac);
- Intr($10, r);
- end;
-
- Procedure Write_DACs(Dac : DacType);
- Var
- r : Registers;
- begin
- r.ax := $1012;
- r.bx := 0;
- r.cx := 256;
- r.es := seg(Dac);
- r.dx := Ofs(Dac);
- Intr($10, r);
- end;
-
- { fade....}
- Procedure TextFadeOut(Speed : Integer);
- begin;
- Repeat
- erg := 0;
- For x := 1 to 256 do
- For y := 1 to 3 do
- begin
- if dac2[x, y] > 0 then
- DEC(dac2[x, y]);
- erg := erg + dac2[x, y];
- end;
- Write_Dacs(dac2);
- Delay(Speed);
- Until erg = 0;
- end;
-
- { restore....fades also}
- Procedure TextFadeIn(Speed : Integer);
- begin;
- Repeat
- erg := 0;
- For x := 1 to 256 do
- For y := 1 to 3 do
- begin
- if dac2[x, y] < dac1[x, y] then
- INC(dac2[x,y]);
- erg := erg + dac2[x, y];
- end;
- Write_Dacs(dac2);
- Delay(Speed);
- Until (erg = gesamt) or (KeyPressed);
- Write_Dacs(dac1);
- end;
-
- begin
- Read_Dacs(dac1);
- dac2 := dac1;
- gesamt := 0;
- For x := 1 to 256 do
- For y := 1 to 3 do
- gesamt := gesamt + dac1[x, y];
-
- end.
-